﻿using System;
using System.Data;

namespace msBsc.WebUi
{
    public partial class wfSysChargeTradingLog : msBsc.Cls.BPageHt
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindControls();
                txtRelId.Value = GetFormParam("REL_ID");
                //this.ExecJScript("$('#txtRelId').val('" + GetFormParam("REL_ID") + "');");
                if (GetFormParam("REL_ID") != string.Empty)
                {
                    this.ExecJScript("$('#divCondition').hide();");
                }
            }
        }

        private void BindControls()
        {
            if (!IsPostBack)
            {
            }
        }
        //重构基类的回调处理函数，以strAction属性来判断是什么类型的回调，该变量的值对应前台的ACTION参数，如：按钮的名称等
        public override void InitialByParam()
        {
            if (this.gtGridRet != null)
            {
                if (this.gtGridRet.action == "load" || this.gtGridRet.action == "export")//处理GRID的数据原获取和数据导出
                {
                    DataSet ds = GetDisplayData(this.GetParamHtValue("gtGridID"), this.strAction, this.sCurrPageRadom);
                    if (ds != null && ds.Tables.Count > 0)
                        SetReturnDatatable(ds.Tables[0], "CHARGE_TRADING_ID");//CONSTANT_CATEGORY_ID为表的KEY字段，可填可不填
                }
            }
            else if (strAction == "btnEdit")//根据传入的回调类型进行处理，这里响应编辑按钮
            {
                SetMode("EDIT");
            }
            else if (strAction == "btnNotSave")//根据传入的回调类型进行处理，这里响应编辑按钮
            {
                SetMode("VIEW");
            }
            else if (strAction == "btnConfirmArrive")//根据传入的回调类型进行处理，这里响应编辑按钮
            {
                dobtnConfirmArrive(this.GetParamHtValue("CHECK_ID"));
                this.ExecJScript("btnDo('mFinder');");
            }
            else if (strAction == "AutoCloseAccount")
            {
                using (msBsc.AppLogic.DataAlc.CBizDjkChargeTradingLog objCBizDjkChargeTradingLog = new AppLogic.DataAlc.CBizDjkChargeTradingLog())
                {
                    string result = objCBizDjkChargeTradingLog.AutoCloseAccount();

                    this.Alert(result == "OK" ? "账单结算成功完成" : result);
                }
            }
            //else if (strAction == "btnCancel")//根据传入的回调类型进行处理，这里响应编辑按钮
            //{
            //    SetItemStatus(this.GetParamHtValue("CHECK_ID"), "False");
            //    this.ExecJScript("btnDo('mFinder');");
            //}

            base.InitialByParam();
        }
        private void dobtnConfirmArrive(string strIds)
        {
            System.Transactions.TransactionOptions transactionOption = new System.Transactions.TransactionOptions();
            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
            transactionOption.Timeout = new TimeSpan(0, 10, 0);
            using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOption))
            {
                using (msBsc.AppLogic.DataAlc.CBizDjkChargeTradingLog objlog = new AppLogic.DataAlc.CBizDjkChargeTradingLog())
                {
                    DataSet dslog = objlog.SelectByIds(strIds);
                    for (int i = 0; i < dslog.Tables[0].Rows.Count; i++)
                    {
                        if (dslog.Tables[0].Rows[i]["TRADING_SID"].ToString() == "待支付")
                        {
                            dslog.Tables[0].Rows[i]["TRADING_SID"] = "已支付";
                            dslog.Tables[0].Rows[i]["PAY_ARRIVE_DT"] = objlog.dtCurrDateTime;
                        }
                    }
                    objlog.Update(dslog);

                    ts.Complete();
                }
            }
        }

        //修改页面状态
        private void SetMode(string strMode)
        {
            EditMode = "VIEW";
            switch (strMode)
            {
                case "EDIT":
                    //EnabledLinkBtn("btnEdit", false);
                    //EnabledLinkBtn("btnSave", true);
                    //EnabledLinkBtn("btnNotSave", true);
                    //EnabledLinkBtn("btnConfirm", false);
                    //EnabledLinkBtn("btnCancel", false);
                    this.ExecJScript("doEditGt('myGrid1');");
                    break;
                case "ADD":
                    //EnabledLinkBtn("btnEdit", false);
                    //EnabledLinkBtn("btnSave", true);
                    //EnabledLinkBtn("btnNotSave", false);
                    //EnabledLinkBtn("btnConfirm", false);
                    //EnabledLinkBtn("btnCancel", false);
                    this.ExecJScript("doEditGt('myGrid1');");
                    break;
                case "VIEW":
                    //EnabledLinkBtn("btnEdit", true);
                    //EnabledLinkBtn("btnSave", false);
                    //EnabledLinkBtn("btnNotSave", false);
                    //EnabledLinkBtn("btnConfirm", true);
                    //EnabledLinkBtn("btnCancel", true);
                    this.ExecJScript("doCancelGt('myGrid1');");
                    break;
            }
        }
        //获取数据原,"DP_DATA"字符一定不要改变，否则系统不能自动清除缓存
        public DataSet GetDisplayData(string strgtGridID, string strSrcF, string strsRadom)
        {
            if (strgtGridID == "myGrid1")
            {
                DataSet ds;
                if (strSrcF == "mFinder" || !this.SessionIsExists(strsRadom + "DP_DATA", "1"))//点击查询按钮时，或需要数据而没有缓存时，根据条件取出数据记录
                {
                    using (msBsc.AppLogic.DataAlc.CBizDjkChargeTradingLog objtem1 = new msBsc.AppLogic.DataAlc.CBizDjkChargeTradingLog())
                    {
                        //    if (this.GetParamHtValue("REL_ID") != string.Empty)
                        //    {
                        //        ds = objtem1.SelectByAccountNo(this.GetParamHtValue("REL_ID"));
                        //    }
                        //    else
                        //    {
                        ds = objtem1.GetTradingLogInfoForSys(this.GetParamHtValue("TRADING_NO") == "" ? "" : "%" + this.GetParamHtValue("TRADING_NO") + "%"
                            , this.GetParamHtValue("INITIAL_DT_S")
                            , this.GetParamHtValue("INITIAL_DT_E")
                            , this.GetParamHtValue("TRADING_TYPE_CID")
                            , this.GetParamHtValue("TRADING_SID")
                            , this.GetParamHtValue("CHARGE_SRC_CID"));
                        //}
                    }
                    ds.AcceptChanges();
                    SetSession(strsRadom + "DP_DATA", ds, "1");
                    //查询时，将页面置为查看状态
                    //if (strSrcF == "mFinder")
                    SetMode("VIEW");
                }
                else
                {
                    ds = (DataSet)this.GetSession(strsRadom + "DP_DATA", "1");
                }
                return ds;
            }
            else
            {
                return null;
            }
        }


    }
}